<?php
/**
 * 注册与登录控制器
 */

namespace Home\Controller;

use Think\Controller;
use Think\Verify;

class LoginController extends Controller
{
    /**
     * 登录页面
     */
    public function index()
    {
        $this->display();
        
    }

    /**
     * 注册页面
     */
    public function register()
    {
        if(C('REGIS_ON')){
            $this->error('网站注册功能已关闭');
        }
        $this->display();
    }

    /**
     *实现登录
     */
    public function login()
    {
        if (!IS_POST) {
            $this->error("非法请求");
        }
        //提取表单内容
        $account = I('post.account');
        $pwd = md5(I('post.pwd'));
        $where = array('account' => $account);
        $user = M('user')->where($where)->find();
        if (!$user || $user['password'] != $pwd) {
            $this->error('用户名或者密码不正确');
        }
        if ($user['lock']) {
            $this->error('用户被锁定');
        }
        //处理下一次自动登录
        if (isset($_POST['auto'])) {
            $account = $user['account'];
            $ip = get_client_ip();
            $value = $account . '|' . $ip;
            $value = encryption($value);
            @setcookie('auto', $value, C('AUTO_LOGIN_TIME'), '/');
        }
        //登录成功写入SESSION并且跳转到首页
        session('uid', $user['id']);
        header('Content-Type:text/html;Charset=UTF-8');
//        redirect(__APP__, 3, '登录成功，正在为您跳转...');
        $this->success('登录成功，正在为您跳转...',__APP__);
    }

    /**
     * 实现注册
     */
    public function doRegis()
    {
        if (!IS_POST) //判断是否是由表单提交的数据
        {
            $this->error("非法请求");
        }
        if (I('post.pwd') != I('post.pwded')) {
            $this->error("两次密码不一致");
        }
        //提取POST数据
        $data = array(
            'account' => I('post.account'),
            'password' => md5(I('post.pwd')),
            'registime' => $_SERVER['REQUEST_TIME'],
            'userinfo' => array(
                'username' => I('post.uname')
            )
        );
        $id = D('UserRelation')->insert($data);
        if ($id) {
            //插入数据成功后把用户ID写SESSION
            session('uid', $id);
            //跳转至首页
            header('Content-Type:text/html;Charset=UTF-8');
//            redirect(__APP__, 3, '注册成功，正在为您跳转...');
            $this->success('注册成功，正在为您跳转...',__APP__);
        } else {
            $this->error('注册失败，请重试...');
        }
    }

    /**
     * 获取验证码
     */
    public function verify()
    {
        $Verify = new Verify();
        $Verify->length = 4; // 验证码位数
        $Verify->codeSet = '0123456789';//纯数字验证码
        $Verify->entry();
    }

    /**
     * 异步验证账号是否已存在
     */
    public function checkAccount()
    {
        if (!IS_AJAX) { //判断是否是ajax请求
            $this->error("非法请求");
        }
        $account = I('post.account');
        $where = array('account' => $account);
        if (M('user')->where($where)->getField('id')) {
            echo 'false';
        } else {
            echo 'true';
        }
    }

    /**
     * 异步验证昵称是否已存在
     */
    public function checkUname()
    {
        if (!IS_AJAX) {
            $this->error("非法请求");
        }
        $username = I('post.uname');
        $where = array('username' => $username);
        if (M('userinfo')->where($where)->getField('id')) {
            echo 'false';
        } else {
            echo 'true';
        }
    }

    /**
     * 异步验证验证码
     */
    public function checkVerify()
    {
        if (!IS_AJAX) {
            $this->error("非法请求");
        }
        $verify = I('post.verify');
        if (check_verify($verify)) {
            echo 'true';
        } else {
            echo 'false';
        }
    }
}